class SceneManger {
	static obj: SceneManger;
	static createObj(_stage) {
		// 这里的_stage是createObj的局部变量
		if (!SceneManger.obj) {
			SceneManger.obj = new SceneManger(_stage);
		}
		return SceneManger.obj;
	}

	/*
		1.能够帮我们自动加载资源
		2.能够帮我们快速切换场景
		将来调用时的样子
		SceneManger.createObj().loadScene("player",player)
	*/
	public constructor(_stage) {
		this._stage = _stage;
	}
	private _stage:egret.Stage;
	private curScene;
	/**
	 * @param sceneName:string   要加载的资源组名
	 * @param nextScene:function 要加载场景的类名
	 * @return void
	 * 
	 * **/
	public async loadScene(sceneName, NextScene) {
		// 功能一加载资源
		let loadingView = new Loading(); //onProgress
		this._stage.addChild(loadingView);//显示loading界面
		await RES.loadGroup(sceneName, 0, loadingView);//加载资源，配置文件已经再main里面加载过了，这里不需要再次加载了
		//this._stage.removeChild(loadingView);//资源加载完成后移除loading
		// 功能二切换场景
		let nextScene = new NextScene();
		this._stage.addChild(nextScene);
		console.log(this._stage.getChildByName("musicBtn"))
		if(this._stage.getChildByName("musicBtn")){
			console.log(11)
			this._stage.swapChildren(this._stage.getChildByName("musicBtn"),nextScene)
		}
		if (!nextScene.aniMyself) {
			nextScene.y = this._stage.stage.stageHeight;
			egret.Tween.get(nextScene).to({ y: 0 }, 1000, egret.Ease.cubicInOut).call(() => {
				if (this.curScene && this._stage.contains(this.curScene)) {
					this._stage.removeChild(this.curScene)
				}
				this.curScene = nextScene;
			})
		} else {
			nextScene.aniMyself(() => {
				if (this.curScene && this._stage.contains(this.curScene)) {
					this._stage.removeChild(this.curScene)
				}
				this.curScene = nextScene;
			})
		}

	}


}
